/*
 
 */
package com.jme3.gde.gui.extra.xam.model.impl;

import java.util.List;
import org.w3c.dom.Element;
import com.jme3.gde.gui.extra.xam.model.ControlDefinition;
import com.jme3.gde.gui.extra.xam.model.NiftyModel;
import com.jme3.gde.gui.extra.xam.model.NiftyQName;
import com.jme3.gde.gui.extra.xam.model.NiftyType;
import com.jme3.gde.gui.extra.xam.model.RegisterEffectType;
import com.jme3.gde.gui.extra.xam.model.RegisterMouseCursorType;
import com.jme3.gde.gui.extra.xam.model.RegisterMusicType;
import com.jme3.gde.gui.extra.xam.model.RegisterSoundType;
import com.jme3.gde.gui.extra.xam.model.ResourceBundleType;
import com.jme3.gde.gui.extra.xam.model.ScreenType;
import com.jme3.gde.gui.extra.xam.model.StyleType;
import com.jme3.gde.gui.extra.xam.model.UseControlsType;
import com.jme3.gde.gui.extra.xam.model.UseStylesType;
import com.jme3.gde.gui.extra.xam.model.spi.NiftyComponentBase;
import com.jme3.gde.gui.extra.xam.model.visitor.NiftyComponentVisitor;	

/**
 * Implementation for domain component niftyType.
 * 
 * @author cuongnguyen
 */
// Generated by XAM AutoGen Tool v0.2
public class NiftyTypeImpl extends NiftyComponentBase implements NiftyType {

    public NiftyTypeImpl(NiftyModel model, Element element) {
        super(model, element);
    }
    
    public NiftyTypeImpl(NiftyModel model) {
        this(model, createElementNS(model, NiftyQName.NIFTYTYPE));
    }

    // attributes

    // child elements

    public List<UseStylesType> getUseStylesTypes() {
        return getChildren(UseStylesType.class);
    }

    public void addUseStylesType(UseStylesType useStylesType) {
        appendChild(USESTYLESTYPE_PROPERTY, useStylesType);
    }

    public void removeUseStylesType(UseStylesType useStylesType) {
        removeChild(USESTYLESTYPE_PROPERTY, useStylesType);
    }

    public List<UseControlsType> getUseControlsTypes() {
        return getChildren(UseControlsType.class);
    }

    public void addUseControlsType(UseControlsType useControlsType) {
        appendChild(USECONTROLSTYPE_PROPERTY, useControlsType);
    }

    public void removeUseControlsType(UseControlsType useControlsType) {
        removeChild(USECONTROLSTYPE_PROPERTY, useControlsType);
    }

    public List<RegisterSoundType> getRegisterSoundTypes() {
        return getChildren(RegisterSoundType.class);
    }

    public void addRegisterSoundType(RegisterSoundType registerSoundType) {
        appendChild(REGISTERSOUNDTYPE_PROPERTY, registerSoundType);
    }

    public void removeRegisterSoundType(RegisterSoundType registerSoundType) {
        removeChild(REGISTERSOUNDTYPE_PROPERTY, registerSoundType);
    }

    public List<RegisterEffectType> getRegisterEffectTypes() {
        return getChildren(RegisterEffectType.class);
    }

    public void addRegisterEffectType(RegisterEffectType registerEffectType) {
        appendChild(REGISTEREFFECTTYPE_PROPERTY, registerEffectType);
    }

    public void removeRegisterEffectType(RegisterEffectType registerEffectType) {
        removeChild(REGISTEREFFECTTYPE_PROPERTY, registerEffectType);
    }

    public List<RegisterMusicType> getRegisterMusicTypes() {
        return getChildren(RegisterMusicType.class);
    }

    public void addRegisterMusicType(RegisterMusicType registerMusicType) {
        appendChild(REGISTERMUSICTYPE_PROPERTY, registerMusicType);
    }

    public void removeRegisterMusicType(RegisterMusicType registerMusicType) {
        removeChild(REGISTERMUSICTYPE_PROPERTY, registerMusicType);
    }

    public List<RegisterMouseCursorType> getRegisterMouseCursorTypes() {
        return getChildren(RegisterMouseCursorType.class);
    }

    public void addRegisterMouseCursorType(RegisterMouseCursorType registerMouseCursorType) {
        appendChild(REGISTERMOUSECURSORTYPE_PROPERTY, registerMouseCursorType);
    }

    public void removeRegisterMouseCursorType(RegisterMouseCursorType registerMouseCursorType) {
        removeChild(REGISTERMOUSECURSORTYPE_PROPERTY, registerMouseCursorType);
    }

    public List<ResourceBundleType> getResourceBundleTypes() {
        return getChildren(ResourceBundleType.class);
    }

    public void addResourceBundleType(ResourceBundleType resourceBundleType) {
        appendChild(RESOURCEBUNDLETYPE_PROPERTY, resourceBundleType);
    }

    public void removeResourceBundleType(ResourceBundleType resourceBundleType) {
        removeChild(RESOURCEBUNDLETYPE_PROPERTY, resourceBundleType);
    }

    public List<StyleType> getStyleTypes() {
        return getChildren(StyleType.class);
    }

    public void addStyleType(StyleType styleType) {
        appendChild(STYLETYPE_PROPERTY, styleType);
    }

    public void removeStyleType(StyleType styleType) {
        removeChild(STYLETYPE_PROPERTY, styleType);
    }

    public List<ControlDefinition> getControlDefinitions() {
        return getChildren(ControlDefinition.class);
    }

    public void addControlDefinition(ControlDefinition controlDefinition) {
        appendChild(CONTROLDEFINITION_PROPERTY, controlDefinition);
    }

    public void removeControlDefinition(ControlDefinition controlDefinition) {
        removeChild(CONTROLDEFINITION_PROPERTY, controlDefinition);
    }

    public List<ScreenType> getScreenTypes() {
        return getChildren(ScreenType.class);
    }

    public void addScreenType(ScreenType screenType) {
        appendChild(SCREENTYPE_PROPERTY, screenType);
    }

    public void removeScreenType(ScreenType screenType) {
        removeChild(SCREENTYPE_PROPERTY, screenType);
    }

    public void accept(NiftyComponentVisitor visitor) {
        visitor.visit(this);
    }

}